﻿/*
*  @Autor.......:  Edney B. Silva
*  @Data........:  01/11/2012
*  @Descrição...:  classe responsável por funcionalidades uteis para todo o programa
*/
(function () {
    util = (function () {
        var util = function () {
            return new util.fn.Create();
        };
        util.fn = util.prototype = {
            Create: function () {
                /// <summary>Cria uma instância de Util</summary>
                var obj = util.fn;
                return obj;
            },
            ValidarData: function (valor) {
                /// <summary>Faz a validação de uma data</summary>
                /// <param name="valor" type="String">Valor a ser validado</param>
                /// <returns type="Boolean" />

                var date = valor;
                var ardt = new Array;
                var ExpReg = new RegExp("(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[12][0-9]{3}");
                ardt = date.split("/");
                erro = false;
                if (date.search(ExpReg) == -1) {
                    erro = true;
                }
                else if (((ardt[1] == 4) || (ardt[1] == 6) || (ardt[1] == 9) || (ardt[1] == 11)) && (ardt[0] > 30))
                    erro = true;
                else if (ardt[1] == 2) {
                    if ((ardt[0] > 28) && ((ardt[2] % 4) != 0))
                        erro = true;
                    if ((ardt[0] > 29) && ((ardt[2] % 4) == 0))
                        erro = true;
                }
                if (erro) {
                    return false;
                }
                return true;
            },
            ValidarHora: function (value) {
                var valid = false;

                // Define uma expressão regular para validar se a hora informada está
                // no formato nn:nn:nn, onde n é um número entre 0 e 9
                var regex = new RegExp("^([0-9]{2}):([0-9]{2})$");
                var matches = regex.exec(value);

                if (matches != null) {
                    var hour = parseInt(matches[1], 10);
                    var minute = parseInt(matches[2], 10);

                    var date = new Date(0, 0, 0, hour, minute, 0, 0);
                    valid = date.getHours() == hour && date.getMinutes() == minute;
                }
                return valid;
            },
            ValidarEmail: function (mail) {
                var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
                if (typeof (mail) == "string") {
                    if (er.test(mail)) { return true; }
                } else if (typeof (mail) == "object") {
                    if (er.test(mail.value)) {
                        return true;
                    }
                } else {
                    return false;
                }
            }
        }
        window.util = util.fn;
        return util.fn;
    });
    return util;
})();